<?php
namespace app\api\controller;
use app\Response;
use QL\QueryList;
use \Curl\Curl;
use app\common;

/**
 *  小说数据表操作
 */
class TxtTable {
	/**
	 * [addTbl 向数据表中插入数据]
	 * @param [string] $table [数据表名,'stroy']
	 * @param [array] $data  [要插入的数据]  $data = array('name' => $name, 'author' => $author, 'introduction' => $introduction, 'category_id' => $category_id);
	 * @param [array] $key   [要校验的关键字] $key = array('name','author'); 
	 */
	public static function addTbl($table,$data,$key=array()){
		//参数错误，数据表名为空，新增数据为空，新增数据不是数组格式
		if(!$table || !$data || !is_array($data)){
			return false;
		}

		$map = array();
		if($key){
			foreach ($key as $m => $o) {
				$map_key = '';
				$map_key = isset($data[$o])?$data[$o]:'';
				!empty($map_key)?($map[$o] = $map_key):'';
			}
		}
		//如果有关键字段，且所有关键字段为空，表示参数错误，不允许插入数据
		if($key && empty($map)){
			return false;
		}

		$story = array();
		//校验要检查的关键字段是否有相同数据存在,存在则不新增
		if($map){
			$story = Db::table($table)->where($map)->find();
		}
		
		if($story){
			//已存在
			return false;		
		}
		//不存在则新增
		$story = Db::table($table)->insertGetId($data);
		return $story;
	}
	//$key = array('txt_id'=>$txt_id, 'name'=> $name);  $data = array('name' => $name, 'author' => $author, 'introduction' => $introduction, 'category_id' => $category_id);
	public static function updateTbl($table, $data, $key=array()){
		//参数错误，数据表名为空，修改数据为空，修改数据不是数组格式
		if(!$table || !$data || !is_array($data)){
			return false;
		}

		//修改数据
		$story = array();
		if($key){
			$story = Db::table($table)->where($key)->update($data);
		}else{
			$story = Db::table($table)->update($data);
		}		
			
		return $story;
	}
}